package com.starry.module.system.api.code.domain.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 编码规则配置CodeRuleConfigVo
 * @author xiaoke
 */
@Schema(description = "CodeRuleConfigVo")
@Data
public class CodeRuleConfigVo {
    /**
     * 主键ID
     */
    @Schema(description = "主键ID")
    private Long id;

    /**
     * 规则唯一标识
     */
    @Schema(description = "规则唯一标识")
    private String ruleKey;
    /**
     * 规则名称
     */
    @Schema(description = "规则名称")
    private String ruleName;
    /**
     * 固定前缀
     */
    @Schema(description = "固定前缀")
    private String prefix;
    /**
     * 日期格式
     */
    @Schema(description = "日期格式")
    private String dateFormat;
    /**
     * 序号类型（1-自增 2-时间戳 3-随机数）
     */
    @Schema(description = "序号类型（1-自增 2-时间戳 3-随机数）")
    private Integer seqType;
    /**
     * 序号长度（不足补零）
     */
    @Schema(description = "序号长度（不足补零）")
    private Integer seqLength;
    /**
     * 当前序号值
     */
    @Schema(description = "当前序号值")
    private Long currentSeq;
    /**
     * 序号重置方式（1-不重置 2-按日 3-按月 4-按年）
     */
    @Schema(description = "序号重置方式（1-不重置 2-按日 3-按月 4-按年）")
    private Integer resetType;
    /**
     * 固定后缀
     */
    @Schema(description = "固定后缀")
    private String suffix;
    /**
     * 各部分分隔符
     */
    @Schema(description = "各部分分隔符")
    private String delimiter;
    /**
     * 是否启用Redis缓存
     */
    @Schema(description = "是否启用Redis缓存")
    private Integer enableCache;
    /**
     * 规则描述
     */
    @Schema(description = "规则描述")
    private String description;
    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private LocalDateTime createTime;
    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    private LocalDateTime updateTime;
    /**
     * 创建者id
     */
    @Schema(description = "创建者id")
    private Long createId;
    /**
     * 更新者Id
     */
    @Schema(description = "更新者Id")
    private Long updateId;
    /**
     * 更新者用户名
     */
    @Schema(description = "更新者用户名")
    private String updateName;
    /**
     * 创建者用户名
     */
    @Schema(description = "创建者用户名")
    private String createName;
}

